type runtime.g
213 uses
runtime (current package)
cgo_sigaction.go#L49: var g *g
cgocall.go#L416: defer func(gp *g) {
chan.go#L748: func chanparkcommit(gp *g, chanLock unsafe.Pointer) bool {
coro.go#L109: func coroswitch_m(gp *g) {
coro.go#L180: var gnext *g
debugcall.go#L161: mcall(func(gp *g) {
debugcall.go#L203: callingG *g
debugcall.go#L219: mcall(func(gp *g) {
heapdump.go#L341: func dumpgoroutine(gp *g) {
heapdump.go#L412: forEachG(func(gp *g) {
lock_futex.go#L129: func beforeIdle(int64, int64) (*g, bool) {
mfinal.go#L48: fing *g // goroutine that runs finalizers
mfinal.go#L162: func wakefing() *g {
mfinal.go#L176: func finalizercommit(gp *g, lock unsafe.Pointer) bool {
mgc.go#L428: stackRoots []*g
mgc.go#L1162: func (gp *g) isMaybeRunnable() bool {
mgc.go#L1242: forEachGRace(func(gp *g) {
mgc.go#L1266: forEachGRace(func(gp *g) {
mgc.go#L1807: gopark(func(g *g, nodep unsafe.Pointer) bool {
mgc.go#L2132: forEachG(func(gp *g) {
mgcmark.go#L61: func (gp *g) internalBlocked() bool {
mgcmark.go#L72: func allGsSnapshotSortedForGC() ([]*g, int) {
mgcmark.go#L81: allgsSorted := make([]*g, len(allgs))
mgcmark.go#L191: forEachGRace(func(gp *g) {
mgcmark.go#L370: var tail *g
mgcmark.go#L499: func gcAssistAlloc(gp *g) {
mgcmark.go#L711: func gcAssistAlloc1(gp *g, scanWork int64) {
mgcmark.go#L904: func scanstack(gp *g, gcw *gcWork) int64 {
mgcpacer.go#L859: func (c *gcControllerState) findRunnableGCWorker(pp *p, now int64) (*g, int64) {
mgcscavenge.go#L282: g *g
mgcsweep.go#L37: g *g
mprof.go#L1328: forEachGRace(func(gp1 *g) {
mprof.go#L1415: forEachGRace(func(gp1 *g) {
mprof.go#L1428: forEachGRace(func(gp1 *g) {
mprof.go#L1456: func tryRecordGoroutineProfileWB(gp1 *g) {
mprof.go#L1466: func tryRecordGoroutineProfile(gp1 *g, pcbuf []uintptr, yield func()) {
mprof.go#L1510: func doRecordGoroutineProfile(gp1 *g, pcbuf []uintptr) {
mprof.go#L1565: isOK := func(gp1 *g) bool {
mprof.go#L1585: forEachGRace(func(gp1 *g) {
mprof.go#L1610: forEachGRace(func(gp1 *g) {
mprof.go#L1664: func saveg(pc, sp uintptr, gp *g, r *profilerecord.StackRecord, pcbuf []uintptr) {
netpoll.go#L434: var rg, wg *g
netpoll.go#L460: var rg, wg *g
netpoll.go#L496: var rg, wg *g
netpoll.go#L529: func netpollblockcommit(gp *g, gpp unsafe.Pointer) bool {
netpoll.go#L540: func netpollgoready(gp *g, traceskip int) {
netpoll.go#L591: func netpollunblock(pd *pollDesc, mode int32, ioready bool, delta *int32) *g {
netpoll.go#L617: return (*g)(unsafe.Pointer(old))
netpoll.go#L636: var rg *g
netpoll.go#L645: var wg *g
panic.go#L609: func popDefer(gp *g) {
panic.go#L1310: func recovery(gp *g) {
panic.go#L1580: func dopanic_m(gp *g, pc, sp uintptr, bubble *synctestBubble) bool {
panic.go#L1611: tracebacksomeothers(gp, func(other *g) bool {
panic.go#L1672: func shouldPushSigpanic(gp *g, pc, lr uintptr) bool {
panic.go#L1724: func dumpPanicDeferState(where string, gp *g) {
preempt.go#L63: g *g
preempt.go#L106: func suspendG(gp *g) suspendGState {
preempt.go#L320: mcall(func(gp *g) {
preempt.go#L369: func wantAsyncPreempt(gp *g) bool {
preempt.go#L390: func isAsyncSafePoint(gp *g, pc, sp, lr uintptr) (bool, uintptr) {
preempt_xreg.go#L73: func xRegSave(gp *g) {
preempt_xreg.go#L115: func xRegRestore(gp *g) {
preempt_xreg.go#L143: func xRegScan(gp *g, gcw *gcWork, state *stackScanState) {
proc.go#L121: g0 g
proc.go#L457: func gopark(unlockf func(*g, unsafe.Pointer) bool, lock unsafe.Pointer, reason waitReason, traceReason traceBlockReason, traceskip int) {
proc.go#L493: func goready(gp *g, traceskip int) {
proc.go#L588: func badmcall(fn func(*g)) {
proc.go#L592: func badmcall2(fn func(*g)) {
proc.go#L632: var gcrash g
proc.go#L634: var crashingG atomic.Pointer[g]
proc.go#L682: allgs []*g
proc.go#L697: allgptr **g
proc.go#L700: func allgadd(gp *g) {
proc.go#L717: func allGsSnapshot() []*g {
proc.go#L729: func atomicAllG() (**g, uintptr) {
proc.go#L731: ptr := (**g)(atomic.Loadp(unsafe.Pointer(&allgptr)))
proc.go#L736: func atomicAllGIndex(ptr **g, i uintptr) *g {
proc.go#L737: return *(**g)(add(unsafe.Pointer(ptr), i*goarch.PtrSize))
proc.go#L743: func forEachG(fn func(gp *g)) {
proc.go#L755: func forEachGRace(fn func(gp *g)) {
proc.go#L969: func dumpgstatus(gp *g) {
proc.go#L1133: func ready(gp *g, traceskip int, next bool) {
proc.go#L1220: func readgstatus(gp *g) uint32 {
proc.go#L1228: func casfrom_Gscanstatus(gp *g, oldval, newval uint32) {
proc.go#L1258: func castogscanstatus(gp *g, oldval, newval uint32) bool {
proc.go#L1290: func casgstatus(gp *g, oldval, newval uint32) {
proc.go#L1401: func casGToWaiting(gp *g, old uint32, reason waitReason) {
proc.go#L1414: func casGToWaitingForSuspendG(gp *g, old uint32, reason waitReason) {
proc.go#L1425: func casGToPreemptScan(gp *g, old, new uint32) {
proc.go#L1443: func casGFromPreempted(gp *g, old, new uint32) bool {
proc.go#L3293: func startlockedm(gp *g) {
proc.go#L3346: func execute(gp *g, inheritTime bool) {
proc.go#L3404: func findRunnable() (gp *g, inheritTime, tryWakeP bool) {
proc.go#L3843: func stealWork(now int64) (gp *g, inheritTime bool, rnow, pollUntil int64, newWork bool) {
proc.go#L3956: func checkIdleGCNoP() (*p, *g) {
proc.go#L4067: var tail *g
proc.go#L4262: func parkunlock_c(gp *g, lock unsafe.Pointer) bool {
proc.go#L4268: func park_m(gp *g) {
proc.go#L4322: func goschedImpl(gp *g, preempted bool) {
proc.go#L4364: func gosched_m(gp *g) {
proc.go#L4369: func goschedguarded_m(gp *g) {
proc.go#L4376: func gopreempt_m(gp *g) {
proc.go#L4383: func preemptPark(gp *g) {
proc.go#L4471: func goyield_m(gp *g) {
proc.go#L4506: func goexit0(gp *g) {
proc.go#L4518: func gdestroy(gp *g) {
proc.go#L5106: func exitsyscallNoP(gp *g) {
proc.go#L5312: func malg(stacksize int32) *g {
proc.go#L5313: newg := new(g)
proc.go#L5352: func newproc1(fn *funcval, callergp *g, callerpc uintptr, parked bool, waitreason waitReason) *g {
proc.go#L5483: func saveAncestors(callergp *g) *[]ancestorInfo {
proc.go#L5516: func gfput(pp *p, gp *g) {
proc.go#L5558: func gfget(pp *p) *g {
proc.go#L5799: func sigprof(pc, sp, lr uintptr, gp *g, mp *m) {
proc.go#L6458: forEachG(func(gp *g) {
proc.go#L6781: gp *g
proc.go#L7028: forEachG(func(gp *g) {
proc.go#L7048: g *g
proc.go#L7237: func schedEnabled(gp *g) bool {
proc.go#L7300: func globrunqput(gp *g) {
proc.go#L7311: func globrunqputhead(gp *g) {
proc.go#L7332: func globrunqget() *g {
proc.go#L7344: func globrunqgetbatch(n int32) (gp *g, q gQueue) {
proc.go#L7529: func runqput(pp *p, gp *g, next bool) {
proc.go#L7575: func runqputslow(pp *p, gp *g, h, t uint32) bool {
proc.go#L7576: var batch [len(pp.runq)/2 + 1]*g
proc.go#L7649: func runqget(pp *p) (gp *g, inheritTime bool) {
proc.go#L7781: func runqsteal(pp, p2 *p, stealRunNextG bool) *g {
proc.go#L7814: func (q *gQueue) push(gp *g) {
proc.go#L7824: func (q *gQueue) pushBack(gp *g) {
proc.go#L7853: func (q *gQueue) pop() *g {
proc.go#L7885: func (l *gList) push(gp *g) {
proc.go#L7901: func (l *gList) pop() *g {
race0.go#L31: func raceacquireg(gp *g, addr unsafe.Pointer) { throw("race") }
race0.go#L34: func racereleaseg(gp *g, addr unsafe.Pointer) { throw("race") }
race0.go#L36: func racereleaseacquireg(gp *g, addr unsafe.Pointer) { throw("race") }
race0.go#L38: func racereleasemergeg(gp *g, addr unsafe.Pointer) { throw("race") }
runtime2.go#L245: func (gp guintptr) ptr() *g { return (*g)(unsafe.Pointer(gp)) }
runtime2.go#L248: func (gp *guintptr) set(g *g) { *gp = guintptr(unsafe.Pointer(g)) }
runtime2.go#L256: func (gp *g) guintptr() guintptr {
runtime2.go#L265: func setGNoWB(gp **g, new *g) {
runtime2.go#L409: g *g
runtime2.go#L471: type g struct {
runtime2.go#L617: g0 *g // goroutine with scheduling stack
runtime2.go#L624: gsignal *g // signal-handling g
runtime2.go#L629: curg *g // current running goroutine
runtime2.go#L686: waitunlockf func(*g, unsafe.Pointer) bool
runtime2.go#L1142: g *g
select.go#L63: func selparkcommit(gp *g, _ unsafe.Pointer) bool {
signal_amd64.go#L49: func (c *sigctxt) preparePanic(sig uint32, gp *g) {
signal_unix.go#L342: func doSigPreempt(gp *g, ctxt *sigctxt) {
signal_unix.go#L399: func sigFetchG(c *sigctxt) *g {
signal_unix.go#L412: gp := *(**g)(unsafe.Pointer(s.base()))
signal_unix.go#L619: var testSigtrap func(info *siginfo, ctxt *sigctxt, gp *g) bool
signal_unix.go#L620: var testSigusr1 func(gp *g) bool
signal_unix.go#L646: func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
signal_unix.go#L845: func fatalsignal(sig uint32, c *sigctxt, gp *g, mp *m) *g {
stack.go#L805: func adjustctxt(gp *g, adjinfo *adjustinfo) {
stack.go#L831: func adjustdefers(gp *g, adjinfo *adjustinfo) {
stack.go#L843: func adjustpanics(gp *g, adjinfo *adjustinfo) {
stack.go#L849: func adjustsudogs(gp *g, adjinfo *adjustinfo) {
stack.go#L864: func findsghi(gp *g, stk stack) uintptr {
stack.go#L878: func syncadjustsudogs(gp *g, used uintptr, adjinfo *adjustinfo) uintptr {
stack.go#L929: func copystack(gp *g, newsize uintptr) {
stack.go#L1245: func isShrinkStackSafe(gp *g) bool {
stack.go#L1286: func shrinkstack(gp *g) {
stubs.go#L31: func getg() *g
stubs.go#L47: func mcall(fn func(*g))
stubs.go#L224: func setg(gg *g)
synctest.go#L19: root *g // caller of synctest.Run
synctest.go#L20: waiter *g // caller of synctest.Wait
synctest.go#L21: main *g // goroutine started by synctest.Run
synctest.go#L43: func (bubble *synctestBubble) changegstatus(gp *g, oldval, newval uint32) {
synctest.go#L132: func (bubble *synctestBubble) maybeWakeLocked() *g {
synctest.go#L267: func synctestidle_c(gp *g, _ unsafe.Pointer) bool {
synctest.go#L314: func synctestwait_c(gp *g, _ unsafe.Pointer) bool {
time.go#L376: func resetForSleep(gp *g, _ unsafe.Pointer) bool {
time.go#L447: goready(arg.(*g), 0)
trace.go#L256: reader atomic.Pointer[g] // goroutine that called ReadTrace, or nil
trace.go#L485: gp *g
trace.go#L494: forEachGRace(func(gp *g) {
trace.go#L893: gopark(func(gp *g, _ unsafe.Pointer) bool {
trace.go#L1059: func traceReader() *g {
trace.go#L1070: func traceReaderAvailable() *g {
traceallocfree.go#L79: forEachGRace(func(gp *g) {
traceback.go#L123: func (u *unwinder) init(gp *g, flags unwindFlags) {
traceback.go#L133: func (u *unwinder) initAt(pc0, sp0, lr0 uintptr, gp *g, flags unwindFlags) {
traceback.go#L834: func printcreatedby(gp *g) {
traceback.go#L862: func traceback(pc, sp, lr uintptr, gp *g) {
traceback.go#L874: func tracebacktrap(pc, sp, lr uintptr, gp *g) {
traceback.go#L883: func traceback1(pc, sp, lr uintptr, gp *g, flags unwindFlags) {
traceback.go#L1165: func gcallers(gp *g, skip int, pcbuf []uintptr) int {
traceback.go#L1173: func showframe(sf srcFunc, gp *g, firstFrame bool, calleeID abi.FuncID) bool {
traceback.go#L1274: func goroutineheader(gp *g) {
traceback.go#L1372: func tracebackothers(me *g) {
traceback.go#L1373: tracebacksomeothers(me, func(*g) bool { return true })
traceback.go#L1376: func tracebacksomeothers(me *g, showf func(*g) bool) {
traceback.go#L1394: forEachGRace(func(gp *g) {
traceback.go#L1490: func isSystemGoroutine(gp *g, fixed bool) bool {
tracecpu.go#L213: func traceCPUSample(gp *g, mp *m, pp *p, stk []uintptr) {
traceruntime.go#L414: func (tl traceLocker) GoCreate(newg *g, pc uintptr, blocked bool) {
traceruntime.go#L467: func (tl traceLocker) GoUnpark(gp *g, skip int) {
traceruntime.go#L475: func (tl traceLocker) GoSwitch(nextg *g, destroy bool) {
traceruntime.go#L488: func (tl traceLocker) emitUnblockStatus(gp *g, gen uintptr) {
traceruntime.go#L585: func (tl traceLocker) GoCreateSyscall(gp *g) {
tracestack.go#L32: func traceStack(skip int, gp *g, tab *traceStackTable) uint64 {